package top.kangyaocoding.ecommerce.utils;

import java.util.Random;

/**
 * 描述: 验证码工具类
 *
 * @author K·Herbert
 * @since 2025-02-16 下午8:36
 */
public class VerificationCodeUtil {

    // 生成六位随机验证码，包含两个英文字符和四个数字，顺序随机
    public static String generateVerificationCode() {
        Random random = new Random();
        StringBuilder code = new StringBuilder();

        // 生成两个随机英文字符（大小写均可）
        for (int i = 0; i < 2; i++) {
            char ch = (char) (random.nextInt(26) + 'A'); // 生成大写字母
            if (random.nextBoolean()) { // 随机决定是否转换为小写
                ch = Character.toLowerCase(ch);
            }
            code.append(ch);
        }

        // 生成四个随机数字
        for (int i = 0; i < 4; i++) {
            code.append(random.nextInt(10)); // 生成0-9之间的数字
        }

        // 将字符和数字随机打乱顺序
        char[] codeArray = code.toString().toCharArray();
        for (int i = 0; i < codeArray.length; i++) {
            int randomIndex = random.nextInt(codeArray.length);
            char temp = codeArray[i];
            codeArray[i] = codeArray[randomIndex];
            codeArray[randomIndex] = temp;
        }

        return new String(codeArray);
    }
}
